import request from '@/config/axios'

/**
 * 标签 Response VO
 */
export interface TagRespVO {
  /**
   * 标签编号
   */
  id: number
  /**
   * 标签分类编号
   */
  categoryId: number
  /**
   * 标签分类名称
   */
  categoryName: string
  /**
   * 标签名称
   */
  name: string
  /**
   * 创建时间
   */
  createTime: string
}

/**
 * 标签创建 Request VO
 */
export interface TagCreateReqVO {
  /**
   * 标签分类编号
   */
  categoryId: number
  /**
   * 标签名称
   */
  name: string
}

/**
 * 标签更新 Request VO
 */
export interface TagUpdateReqVO extends TagCreateReqVO {
  /**
   * 标签编号
   */
  id: number
}

/**
 * 标签分页查询参数
 */
export interface TagPageReqVO {
  /**
   * 页码，从 1 开始
   */
  pageNo: number
  /**
   * 每页条数，最大值为 100
   */
  pageSize: number
  /**
   * 标签名称
   */
  name?: string
  /**
   * 创建时间
   */
  createTime?: string[]
}

/**
 * 标签列表查询参数
 */
export interface TagListReqVO {
  /**
   * 标签名称
   */
  name?: string
}

// 获得标签分页
export const getTagPage = (params: TagPageReqVO) => {
  return request.get({ url: '/system/tag/page', params })
}

// 获得标签列表
export const getTagList = (params?: TagListReqVO) => {
  return request.get<TagRespVO[]>({ url: '/system/tag/list', params })
}

// 获得标签详情
export const getTag = (id: number) => {
  return request.get<TagRespVO>({ url: `/system/tag/get?id=${id}` })
}

// 新增标签
export const createTag = (data: TagCreateReqVO) => {
  return request.post({ url: '/system/tag/create', data })
}

// 修改标签
export const updateTag = (data: TagUpdateReqVO) => {
  return request.put({ url: '/system/tag/update', data })
}

// 删除标签
export const deleteTag = (id: number) => {
  return request.delete({ url: `/system/tag/delete?id=${id}` })
} 
